Amazon QuickSightで、あるビューを使用して別のダッシュボードをフィルターして表示する
どうも。DI部@大阪オフィスのtamaです。
Amazon QuickSight(以下QuickSight)のダッシュボードに関する機能を、自分のために書いておきます。
Tableauでいうところのダッシュボードアクション
言葉で説明するのが難しいのですが、例えば、棒グラフがあったとして、その中の1つの棒をクリックした際に、クリックした部分のデータだけ抜き出した形のテキスト表を見たい…というような要件が、ダッシュボードには度々あります。ダッシュボードをまたいだドリルダウンとでもいいましょうか。
Tableauには「ダッシュボードアクション」という機能で上記を実現することができますが、それをAmazon QuickSightでもやりたいというのが、本エントリの主旨です。
今回やりたいこと
準備
下記の2つのダッシュボードを用意します。
要件
上の画像(遷移元ダッシュボード)のある棒グラフを選択して、選択した部分だけの日時のデータを、下の画像(遷移先ダッシュボード)で見たい…ということをやってみます。
URLアクションを使う
Amazon QuickSightで、別のダッシュボードに遷移させたい場合は、URLアクションという機能を使用します。
普通に設定してみる
設定自体は非常に簡単です。ダッシュボードの右上メニューからURLアクションを選択します。
「アクションの追加」を選択します。
そして、URLアクションの名称と、実際の飛ばす先のURLを入力します。ここのURLですが、普通にブラウザで開いた時のURLで問題ありません。
設定が完了すると、ビュー上のデータを選択した時に、設定したURLアクションが出てきます。これを選択すると、設定したURL(つまり別ダッシュボード)に遷移します。
ただし、この方法だと、単純に遷移するだけで、「選択した部分のデータで、遷移先ダッシュボードをフィルタリングする」という要件は満たせません。
選択した時にパラメータを渡すように設定する
選択した部分だけの日時のデータを、下の画像(遷移先ダッシュボード)で見たい
QuickSightのURLアクションの設定として、選択した部分のデータを、遷移先ダッシュボードに設定してあるパラメータに渡す…というものがあります。これを利用して、今回の要件を実現したいと思います。
遷移先の方にフィルタ&パラメータを設定しておく
遷移元で選択した部分の値(今回でいえば日付)を渡す先を、予め作っておく必要があります。パラメータを設定して、そのパラメータを使ったフィルタも置きましょう。
具体的な方法は下記の通りです。
今回は下記のパラメータを作成しました。パラメータに入った値が、コントロールの「受注日」と連動するようになっています。
遷移元のURLアクションにパラメータ付与設定をする
そして、先程のURLアクションに戻ります。
遷移させたいURLの最後尾にパラメータの記述を行います。今回の遷移元と遷移先のパラメータを整理すると、下記の通りです。
- 遷移元から飛ばしたい値:Order Date
- 遷移先で受け取るパラメータ:Orderdate
上記を実現するためには、URLの最後尾に下記を付与します。
#p.orderdate=<<Order Date>>
遷移先パラメータのorderdateに、遷移元で選択した部分のOrder Dateを渡す…という感じですね。
実践してみる
上記を設定後、実際に試してみます。
2011年3月のデータを選択してみます。
すると、2011年3月1日という値が渡され、その日付だけでフィルタリングされた遷移先ダッシュボードが表示されました。
必ず日にちまで渡されてしまう仕様?
意図通りにパラメータを渡すことはできました。しかし、ここで一つ疑問なのが「2011年3月1日ではなく、”2011年3月”として指定する」ことはできないか…という点です。
色々検証してみたのですが、どうしても日付まで渡ってしまう(〜1日まで渡ってしまう)ようで、フィルタリングを月単位までに留めるというのは、今の所実現できていません(truncDate関数で丸めた項目を使用したり、表記を変更してみてもダメでした)。
どういった形までが渡せるのか、色々と試して把握してみて、そこからQuickSightで実現できる形を考える方法がベストかもしれません。
おわりに
簡単な操作でTableauのダッシュボードアクション的な操作を行うことができました。